home *** CD-ROM | disk | FTP | other *** search
-
- /***************************************************************************
-
- XATARI.H
-
- - Atari 800 includes
-
- 03/21/88 created
-
- 07/22/88 23:55
-
- ***************************************************************************/
-
- #include <stdio.h>
- #include <osbind.h>
- #include "xglobal.h"
- #include "x6502.h"
-
- extern LAtariBasic(), LAtariFP(), LAtariChars(), LAtariOSB(), LAtariEnd();
- extern LFastFP(), LAtariXL(), LAtariXL2();
-
- extern AtariRedraw(), redraw_PMG();
-
- extern
- plot_0(), plot_2(), plot_3(), plot_4(), plot_5(), plot_6(),
- plot_7(), plot_8(), plot_9(), plot_A(), plot_B(), plot_C(),
- plot_D(), plot_E(), plot_F();
-
- extern Lmp8to16(), Lmp8to32(), rgwRainbow();
-
- extern swap_XL();
-
- extern long lXLMemory; /* 16K buffer for XL bank flipping */
- extern int fAtariXLROMs; /* says whether XL ROMs selected */
- extern int fAtariXL; /* says whether XL selected */
- extern int fFastIO; /* fast disk I/O? */
- extern int fAtCart; /* is a cartridge plugged in */
- extern int fFastFP;
- extern unsigned int uAtRAM; /* byte past end of RAM ($8000, $A000, $C000) */
- extern int fPMGRedraw; /* do PMG need redraw? */
- extern int fRedraw; /* does Atari need to do a global redraw */
- extern int fAtDMA; /* is DMA on */
- extern int bDMACTL; /* copy of $D400 */
- extern int mdAtWidth; /*playfield width (0-3) */
- extern unsigned int uAtCharBase; /* start of Atari character set */
- extern unsigned int uPMGBase; /* start of PMG area */
- extern int fDOS;
- extern int fDDenable; /* enough memory to support DD? */
- extern long lrgbDrive;
- extern unsigned uDLStart; /* start of display list */
- extern int rgwAtColors[16];
- extern int wVBIrate, wVBIcount;
-
- /* structure to define an Atari drive */
-
- typedef struct
- {
- char rgchPath[128]; /* path to drive file */
- char rgchName[15]; /* name of drive file */
- int mdDensity; /* 0 = off, 1 = sng, 2 = enh, 3 = dbl */
- int fWP; /* write protect flag */
- } ATARIDRIVE;
-
- extern ATARIDRIVE rgAD[2];
-
- /* struture to define a contiguous screen region with the same resolution */
- /* start and end are 8 but addresses */
- /* there are 14 arrays of DLs, one for each displayable ANTIC mode */
- /* last DL in array has all elements == -1 */
-
- typedef struct
- {
- unsigned start; /* first byte of block diplayed */
- unsigned end; /* byte past end of block displayed */
- unsigned offset; /* offset into ST screen (scan line * 160) */
- } DL;
-
- extern DL *mprgDL[];
- extern DL
- rgDL2[], rgDL3[], rgDL4[], rgDL5[], rgDL6[], rgDL7[], rgDL8[],
- rgDL9[], rgDLA[], rgDLB[], rgDLC[], rgDLD[], rgDLE[], rgDLF[];
-
- #define fDeleted 0x80
- #define fInUse 0x40
- #define fLocked 0x20
- #define fDos20 0x02
- #define fWrite 0x01
-
- typedef struct
- {
- char rgchData[124]; /* not 125 so that it is byte aligned */
- unsigned uSectorH:2, uFileNum:6, foo:8, ucBytes:8, uSectorL:8;
- } SECTOR;
-
- typedef struct
- {
- char foo[10];
- char rgchBits[90];
- } VTC;
-
- typedef struct
- {
- unsigned char rgf;
- /* fDeleted:1, fInUse:1, fLocked:1, unused:3, fDos20:1, fWrite:1; */
- unsigned char cSizeL;
- unsigned char cSizeH;
- unsigned char cStartL;
- unsigned char cStartH;
- char rgchName[11];
- } DIRENTRY;
-
-